September 03, 2022
Features
Feature Descriptors and Matching
Patch: Raw intensity
Floating-point descriptors: SIFT, SURF, (DAISY), LIFT, … (e.g. A 128-dim. vector (a histogram of gradients))
Binary descriptors: BRIEF, ORB, (BRISK), (FREAK), … (e.g. A 128-bit string (a series of intensity comparison))
Feature Tracking
(a.k.a. Optical Flow)
Optical flow: (Horn-Schunck method), Lukas-Kanade method
Key idea: Sliding window
Properties
불변성
가변성
image scaling
Part #1) Feature point detection
DOG scale-space에서 local extrema (minima and maxima) 찾기
Key idea: 개 또는 그 이상 픽셀들의 연속적인 호(arc)
이번 patch는 corner인가?
corner가 너무 많기 때문에 NMS(Non-Maximum Suppression) 필요
Versions
FAST-ER
Key idea: Deep neural network
Part #2) Orientation assignment
각 patch gradient의 magnitude와 orientation 유도
가장 강한 orientation 찾기
→ Histogram voting (36 bins) with Gaussian-weighted magnitude
Part #3) Feature descriptor extraction
각 patch (16x16 pixels)에서 4x4 gradient histogram (8 bins) 사용
Key idea: 랜덤한 쌍의 sequence of intensity 비교
Versions: The number of tests
Examples of combinations
Key idea: BRIEF에 회전 불변성(rotation invariance) 추가
Oriented FAST
Rotation-aware BRIEF
greedy search에 의해 train된 비교 쌍들을 사용
Combination: ORB
Computing time (@ 24 images (640x480) in Pascal dataset)
ceres::Problem
을 인스턴스화하고 멤버 함수 AddResidualBlock()
을 사용하여 residuals를 추가
각 residual 를 Ceres::Costfunction
형태로 인스턴스화하고 추가
미분(Jacobian) 계산 방법을 선택
ceres::AutoDiffCostFunction
ceres::NumericDiffCostFunction
ceres::SizedCostFunction
ceres :: Lossfunction
를 인스턴스화하고 추가
(problem이 outliers에 대한 견고성이 필요한 경우)ceres::Solver::Options
와 ceres::Solver::Summary
를 인스턴트화하고 옵션 셋팅ceres::Solve()
Solving General Minimization
General Minimization ⇒
Non-linear Least Squares | General Minimization |
---|---|
Ceres::Costfunction | ceres::FirstOrderFunction / ceres::GradientFunction |
ceres::Problem | ceres::GradientProblem |
ceres::Solver | ceres::GradientProblemSolver |
Bottom-up Approaches (~ Voting) (e.g. line fitting, relative pose estimation)
Hough transform
datum은 multiple parameter 후보들에 투표
→ cf. parameter space는 다차원 히스토그램(이산화)으로 유지
RANSAC family
Selection: RANSAC 반복 중에 최고의 모델을 유지
→ cf. RANSAC은 많은 parameter 추정 반복 및 error 계산을 포함함
Top-down Approaches (e.g. graph SLAM, multi-view reconstruction)
M-estimator
Score: A cost function
→ cost function은 truncated loss function을 포함함
Selection: gradient에 따른 cost function이 최소가 될 때
→ cf. Nonlinear optimization는 계산량이 많으며, local minima가 발생할 수 있음